package com.futureCloudMOM.core.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.futureCloudMOM.core.entity.FBaseEntity;
import com.futureCloudMOM.framework.dict.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Facility_ResourceDetail", description = "设备表")
@TableName(value = "Facility_ResourceDetail")
public class FacilityResourceDetail extends FBaseEntity implements Serializable {


    
    @NotBlank(message="[设备编码]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("设备编码")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "facilityCode")
    private String facilityCode;
    
    @NotBlank(message="[设备名称]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("设备名称")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "facilityName")
    private String facilityName;
    
    @NotBlank(message="[设备类型Id]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("设备类型Id")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "facilityType")
    private String facilityType;
    
    @NotNull(message="[生产资源ID]不能为空")
    @ApiModelProperty("生产资源ID")
    @TableField(value = "resourceId")
    private Long resourceId;
    
    @NotBlank(message="[生产厂家]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("生产厂家")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "manufacturer")
    private String manufacturer;
    
    @NotBlank(message="[供应商]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("供应商")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "supplier")
    private String supplier;
    
    @NotNull(message="[生产日期]不能为空")
    @ApiModelProperty("生产日期")
    @TableField(value = "manufacturerDate")
    private Date manufacturerDate;
    
    @NotBlank(message="[生产国家]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("生产国家")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "manufactureCountry")
    private String manufactureCountry;
    
    @NotBlank(message="[设备型号]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("设备型号")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "model")
    private String model;
    
    @NotNull(message="[过期日期]不能为空")
    @ApiModelProperty("过期日期")
    @TableField(value = "expireDate")
    private Date expireDate;
    
    @NotBlank(message="[购买金额]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("购买金额")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "purchasePrice")
    private String purchasePrice;
    
    @NotNull(message="[购买日期]不能为空")
    @ApiModelProperty("购买日期")
    @TableField(value = "purchaseDate")
    private Date purchaseDate;
    
    @NotBlank(message="[序列号]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("序列号")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "serialNumber")
    private String serialNumber;
    
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("设备手册")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "equipmentManual")
    private String equipmentManual;
    
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("设备图纸")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "equipmentDrawing")
    private String equipmentDrawing;
    
    @NotBlank(message="[位置]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("位置")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "location")
    private String location;
    
    @NotNull(message="[所属部门ID]不能为空")
    @ApiModelProperty("所属部门ID")
    @TableField(value = "deptId")
    @Dict(dictCode = "dept_id",dictTable = "sys_dept",dictText = "dept_name")
    private Long deptId;
    
    @NotBlank(message="[资产编号]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("资产编号")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "assetNumber")
    private String assetNumber;
    
    @ApiModelProperty("电压")
    @TableField(value = "voltage")
    private Long voltage;
    
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("尺寸")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "size")
    private String size;
    
    @ApiModelProperty("重量")
    @TableField(value = "weight")
    private Long weight;
    
    @ApiModelProperty("5s模板")
    @TableField(value = "the5STemplateMainId")
    private Long the5STemplateMainId;
    
    @ApiModelProperty("点检模板")
    @TableField(value = "theTemplateMainId")
    private Long theTemplateMainId;
    
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("使用情况")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "useCondition")
    private String useCondition;
    
    @ApiModelProperty("最近保养时间")
    @TableField(value = "lastCheckDate")
    private Date lastCheckDate;
    
    @ApiModelProperty("下次保养时间")
    @TableField(value = "nextCheckDate")
    private Date nextCheckDate;
    
    @ApiModelProperty("最近维修时间")
    @TableField(value = "lastRepairDate")
    private Date lastRepairDate;
    
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("负责人")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "assetManager")
    private String assetManager;
    
    @NotBlank(message="[设备级别]不能为空")
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("设备级别")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "facilitySign")
    private String facilitySign;
    
    @ApiModelProperty("设备连续工作时间（单位：分钟）")
    @TableField(value = "continuousWorkTime")
    private Long continuousWorkTime;
    
    @NotNull(message="[设备运行时间（单位：分钟）]不能为空")
    @ApiModelProperty("设备运行时间（单位：分钟）")
    @TableField(value = "runTime")
    private Long runTime;
    
    @NotNull(message="[设备通电时间（单位：分钟）]不能为空")
    @ApiModelProperty("设备通电时间（单位：分钟）")
    @TableField(value = "electrifyTime")
    private Long electrifyTime;
    
    @NotNull(message="[设备持续生产数量]不能为空")
    @ApiModelProperty("设备持续生产数量")
    @TableField(value = "continuous_Qty")
    private Long continuous_Qty;
    
    @NotNull(message="[设备状态（1：在用，2：停用，3：保养，4：维修，5：报废）]不能为空")
    @ApiModelProperty("设备状态（1：在用，2：停用，3：保养，4：维修，5：报废）")
    @TableField(value = "status")
    @Dict(dictCode = "equipmen_status")
    private Long status;
    
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("OPC地址")
    @Length(max= 500,message="编码长度不能超过500")
    @TableField(value = "terminalAddress")
    private String terminalAddress;






}

